/*
* 文件：PinYin.cs
* 作者：王阳
* 时间：2019-5-20
* 描述：汉语拼音工具
*/
using System;

namespace UnityX
{
    public static class PinYin
    {
        /// <summary>
        /// 汉字转拼音首字母
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string GetPYInitials(string str)
        {
            string tempStr = "";
            foreach (char c in str)
            {
                //字母和符号原样保留
                if (c >= 33 && c <= 126)
                {
                    tempStr += c.ToString();
                }
                //累加拼音声母
                else
                {
                    tempStr += GetPYInitials(c);
                }
            }
            return tempStr;
        }
        /// <summary>
        /// 汉字转拼音首字母
        /// </summary>
        /// <param name="c"></param>
        /// <returns></returns>
        public static char GetPYInitials(char c)
        {
            byte[] array = BitConverter.GetBytes(c);
            int i = array[0] * 256 + array[1];
            if (i < 0xB0A1) return '*';
            if (i < 0xB0C5) return 'a';
            if (i < 0xB2C1) return 'b';
            if (i < 0xB4EE) return 'c';
            if (i < 0xB6EA) return 'd';
            if (i < 0xB7A2) return 'e';
            if (i < 0xB8C1) return 'f';
            if (i < 0xB9FE) return 'g';
            if (i < 0xBBF7) return 'h';
            if (i < 0xBFA6) return 'g';
            if (i < 0xC0AC) return 'k';
            if (i < 0xC2E8) return 'l';
            if (i < 0xC4C3) return 'm';
            if (i < 0xC5B6) return 'n';
            if (i < 0xC5BE) return 'o';
            if (i < 0xC6DA) return 'p';
            if (i < 0xC8BB) return 'q';
            if (i < 0xC8F6) return 'r';
            if (i < 0xCBFA) return 's';
            if (i < 0xCDDA) return 't';
            if (i < 0xCEF4) return 'w';
            if (i < 0xD1B9) return 'x';
            if (i < 0xD4D1) return 'y';
            if (i < 0xD7FA) return 'z';
            return '*';
        }
    }
}